import pytest

# 待测 函数
from config import BASE_PATH
from read_json import read_json_data


def add(x, y):
    return x + y

# 测试数据: 被加数x、加数y、预期结果expect
# data = [(10, 20, 30), (100, 200, 300), (1000, 2000, 3000)]


# 拼接文件名
file_name = BASE_PATH + "/add_data.json"
# 调用函数读取json文件，获取 元组列表格式数据
data = read_json_data(file_name)  # data = [(10, 20, 30), (100, 200, 300), (1000, 2000, 3000)]


# 结合 pytest 定义测试类
class TestAddFunc(object):
    # 定义 通用 测试方法
    @pytest.mark.parametrize("x, y, expect", data)
    def test_add(self, x, y, expect):
        res = add(x, y)  # 调用 待测函数，得实际结果
        assert expect == res

    # def test01_add(self):
    #     res = add(10, 20)  # 调用 待测函数，得实际结果
    #     assert 30 == res  # 断言
    #
    # def test02_add(self):
    #     res = add(100, 200)
    #     assert 300 == res
    #
    # def test03_add(self):
    #     res = add(1000, 2000)
    #     assert 3000 == res
